The #elif Directive

Contents|Index|Previous|Next
The `#elif` directive

One common case of nested conditionals is used to check for more than two possible alternatives. For example, you might have the following statement.

    #if X == 1

    . . .

    #else /* X != 1 */ #if X == 2

    . . .

    #else /* X != 2 */

    . . .

    #endif /* X != 2 */
    #endif /* X != 1 */

Another conditional directive, #elif, allows the previous input to be abbreviated, as the following example shows.

    #if X == 1

    . . .

    #elif X == 2

    . . .

    #else /* X != 2 and X != 1*/

    . . .

    #endif /* X != 2 and X != 1*/

#elif stands for else if. Like #else, it goes in the middle of #ifand #endif pairs, subdividing the pair; #elif does not require a matching #endif. Like #if, the #elif directive includes an expression to be tested.

The text following the #elif is processed only if the original #if condition failed and the #elif condition succeeds. More than one #elif can go in the same #if and #endif group. Then the text after each #elif is processed only if the #elif condition succeeds after the original #if and any previous #elif directives within it have failed. #else is equivalent to #elif1, and #else is allowed after any number of #elif directives, but #elif may not follow #else.

Top|Contents|Index|Previous|Next